package com.iaz.tech.tools.uml.relationship.impl;

import com.iaz.tech.tools.uml.relationship.Relationship;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * Aggregations are used to depict elements which are made up of smaller components. 
 * Aggregation relationships are shown by a white diamond-shaped arrowhead pointing towards the target or parent class.
 * A stronger form of aggregation - a composite aggregation - is shown by a black diamond-shaped arrowhead and is used 
 * where components can be included in a maximum of one composition at a time. If the parent of a composite aggregation is deleted,
 * usually all of its parts are deleted with it; however a part can be individually removed from a composition without having to delete
 * the entire composition. Compositions are transitive, asymmetric relationships and can be recursive.
 * The following diagram illustrates the difference between weak and strong aggregations. An address book is made up of a 
 * multiplicity of contacts and contact groups. A contact group is a virtual grouping of contacts; 
 * a contact may be included in more than one contact group. If you delete an address book, 
 * all the contacts and contact groups will be deleted too; if you delete a contact group, no contacts will be deleted.
 * 
 * 聚合体用于描述由较小的组件组成的元素。
 * 聚合关系用指向目标或父类的白色菱形箭头表示。
 * 一种更强的聚集形式——复合聚集——用黑色菱形箭头表示，该方法已被采用
 * 其中，组件一次最多可以包含在一个组合中。如果删除了组合聚合的父项，则
 * 通常所有部件都会随其一起删除；但是，可以从组合中单独删除某个部件，而无需将其全部删除
 * 整个组合。组合是传递的、不对称的关系，可以是递归的。
 * 下面的图表说明了弱聚合和强聚合之间的区别。地址簿由一个
 * 多个联系人和联系人群组。联系人群组是虚拟的联系人分组；
 * 联系人可以包含在多个联系人组中。如果删除通讯簿，
 * 所有联系人和联系人群组也将被删除；如果删除一个联系人群组，将不会删除任何联系人。
 */
@EqualsAndHashCode(callSuper=false)
@Data
public class NeuronAggregationsRelationship extends Relationship {

}
